package com.shop.cereshop.commons.domain.im.tx.req;

import com.shop.cereshop.commons.domain.im.tx.req.enums.ReqUrlEnums;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 腾讯云即时通讯im 请求通用类
 *
 * @author wang.yao
 */
@Data
@Slf4j
@Component
@ConfigurationProperties(prefix = "tencent.im")
public class ImBaseModel {
    /**
     * SDKAppID 所在国家/地区对应的专属域名：
     * 中国：console.tim.qq.com
     * 新加坡：adminapisgp.im.qcloud.com
     * 首尔： adminapikr.im.qcloud.com
     * 法兰克福：adminapiger.im.qcloud.com
     * 硅谷：adminapiusa.im.qcloud.com
     * 雅加达：adminapiidn.im.qcloud.com
     */
    private String reqUrl = "console.tim.qq.com/";
    /**
     * v4/im_open_login_svc/account_import
     * 请求接口
     */
    private String reqMethod;
    /**
     * sdkappid
     * 创建应用时即时通信 IM 控制台分配的 SDKAppID
     */
    private Integer sdkAppId;
    /**
     * identifier
     * 必须为 App 管理员账号，更多详情请参见 App 管理员
     */
    private String identifier;
    /**
     * usersig
     * App 管理员账号生成的签名，具体操作请参见 生成 UserSig
     */
    private String userSig;
    /**
     * random
     * 请输入随机的32位无符号整数，取值范围0 - 4294967295
     */
    private Long random = System.currentTimeMillis();
    /**
     * contenttype
     * 请求格式，目前只支持 json
     */
    private String contentType;

    /*  public static String getReqUrl(ReqUrlEnums baseUrl, ReqUrlEnums reqUrlEnums, Integer sdkAppId, String identifier, String userSig, Integer random) {
          String url = "https://" + baseUrl.getUrl() + reqUrlEnums.getUrl() + "?sdkappid=" + sdkAppId + "&identifier=" + identifier + "&usersig=" + userSig + "&random=" + random + "&contenttype=json";
          log.info("生成 {}  请求地址 {}", reqUrlEnums.getName(), url);
          return url;
      }*/
    @Override
    public String toString() {
        String url = "https://" + reqUrl + reqMethod + "?sdkappid=" + sdkAppId + "&identifier=" + identifier + "&usersig=" + userSig + "&random=" + random + "&contenttype=" + contentType;
//        log.info("生成 {}  请求地址 {}", reqMethod, url);
        return url;
    }
    //https://xxxxxx/v4/im_open_login_svc/account_import?sdkappid=88888888&identifier=admin&usersig=xxx&random=99999999&contenttype=json
}
